"""
综合应用
5.1烤地瓜
5.1.1 需求
需求主线：
    1 被烤的时间和对应的地瓜状态：
        0-3分钟：生的
        3-5分钟：半生不熟
        5-8分钟：熟的
        超过8分钟：烤糊了
    2 添加的调料
        用户可以按自己的意愿添加调料

5.1.2 步骤分析
    需求涉及一个事物：地瓜，故案例涉及一个类：地瓜类。
5.1.2.1 定义类

地瓜的属性
    被烤的时间
    地瓜的状态
    添加的调料
地瓜的方法
    被烤
        用户根据意愿设定每次考地瓜的时间
        判断地瓜被烤的总时间是在哪个分区，修改地瓜状态
    添加调料
        用户根据意愿设定添加的调料
        将用户添加的调料存储
    显示对象信息

5.1.3 代码实现
5.1.3.1 定义类
地瓜的属性

"""
#定义类：初始化属性、被烤和添加调料的方法，显示对象信息的str
class SweetPotato():
    def __init__(self):
        #被烤的时间
        self.cook_time = 0
        #被烤的状态
        self.cook_static = '生的'
        #调料列表
        self.condiments = []

#定义烤地瓜方法
    def cook(self,time):
        """烤地瓜的方法"""
        #1 先计算地瓜整体烤过的时间
        self.cook_time += time
        if 0 <= self.cook_time<3:
            #生的
            self.cook_static = '生的'
        elif 3 <= self.cook_time<5:
            #半生不熟
            self.cook_static = '半生不熟'
        elif 5 <= self.cook_time<8:
            #烤熟了
            self.cook_static = '熟了'
        elif self.cook_time > 8:
            #烤糊了
            self.cook_static ='烤糊了'

    def __str__(self):
        return f'这个地瓜烤了{self.cook_time}分钟，状态是{self.cook_static},调料有{self.condiments}'

    def add_condiments(self,condiment):
        #用户医院的调料追加到调料列表
        self.condiments.append(condiment)


# 2. 创建对象并调用对应的实例方法
potato = SweetPotato()
print(potato)
potato.cook(5)
print(potato)
potato.add_condiments('辣椒面')
potato.add_condiments('酱油')
print(potato)

